The traditional telephone network, or “PSTN” (Public Switched Telephone Network) operates as a circuit-switched network. That is, when caller A places a PSTN call to B, a particular PSTN “circuit” is dedicated to transmitting voice data between A and B. The circuit may be a physical circuit, i.e., a given trunk channel may be designated between each of several switching points for transmitting voice data between endpoints A and B. The circuit may also be a “virtual” circuit, e.g., the circuit may be allotted a particular amount of bandwidth on an ATM (Asynchronous Transfer Mode) trunk, with the voice data broken up into cells that are carried across the ATM trunk individually, with cells from other calls (or representing other types of data) interspersed on the trunk. A given call may use physical circuits for some parts of its path and virtual circuits for others, and calls may also be dynamically re-routed to different circuits during the duration of a call.
The access network is, historically, the part of the PSTN that physically connects to or terminates the subscriber lines. It includes the lines running to the customer premises and the devices attached to the PSTN end of those lines. The access network performs such functions as transmitting subscriber speech data, transmitting and receiving line signals such as off-hook, on-hook, duration, voltage, frequency of meter pulse, ringing current, and dial pulse receiving. An access network device typically serves multiple subscribers, and may communicate with the subscribers using analog signaling, Integrated Services Digital Network (ISDN) channels, or other signaling formats.
An access network device does not perform call switching or call processing, and therefore needs no knowledge of a dial plan or the structure of the network. Instead, the access network device merely aggregates voice data and signaling to or from its subscribers on a direct trunk to a defined switching point, such as a PSTN central office. The access network device communicates with the switching point using an access network protocol, such as V5 (see V-Interface at the Digital Local Exchange (LE)—V5.2 Interface (Based on 2048 kbit/s) for the Support of Access Network (AN), ITU-T, G.965, March 1995) or GR.303 (see GR-303-CORE Issue 4, “IDLC (Integrated Digital Loop Carrier) Generic Requirements, Objectives, and Interface”, December 2000, and the associated Issues List Report: GR-303-ILR Issue 4A, December 2000, Telcordia). These protocols use relatively simple command sets to request channels between the access network device and the switching point, allocate and deallocate such channels, notify the switching point of dialed digits, hookflash, off-hook, and on-hook conditions at the subscriber endpoint, notify the access network device of caller ID information, etc.
A relative newcomer to telephony is packet voice transmission, sometimes referred to as Voice-Over-IP (VoIP) based on the dominance of Internet Protocol (IP) as a network protocol for packet-switched communication. A primary difference between circuit-switching and packet-switching is that, instead of allocating circuits for data streams, packet-switching breaks a data stream (such as a voice data stream, computer data stream, etc.) into individually-routable chunks of data (“packets”). Each packet contains a header with information that describes the packet's source and destination, but not its route. The switching points in a packet-switched network (commonly called “routers” at the network level) examine each received packet's header individually in order to make next-hop routing decisions, thus no dedicated “circuits” or circuit switches are required.
Completely VoIP calls can be set up between two packet-networked computers or devices, as long as the calling endpoint has a way to determine the other's IP address. On the other hand, the PSTN and its usage are ubiquitous, and therefore a much more useful model for VoIP performs packet-switched call routing between two PSTN switching points. This allows telephone subscribers to use familiar dialing and phone operation procedures, while at the same time allowing a network operator to take advantage of packet-based efficiencies and flexibility.
Routing of PSTN calls over a packet-based network is typically accomplished using gateways and call agents, as shown in FIG. 1. A packet-based network 20 and two sections of PSTN 22a, 22b are illustrated. Within PSTN section 22a, two central offices 24 and 26 are connected by a trunk, and are also each trunked to a third switching point 28. Other trunks and switching points (not shown) connect 24, 26, and/or 28 to the remainder of the PSTN, including PSTN section 22b. Access network devices 30, 32, 34 connect to the central offices, and respectively support subscriber groups 40, 42, 44. Similar infrastructure (not shown) exists in PSTN section 22b to support subscriber group 46.
Circuit-switched calls can enter and leave packet-based network 20 through gateways (sometimes also called network access servers) such as gateways 50 and 52. A typical gateway connects at least one ingress port to a PSTN trunk, e.g., a trunk that time-division-multiplexes many digitally sampled voice channels using well-known physical data formats, such as E1, T1, and T3. The gateway also connects at least one egress port to a packet-based network.
The typical gateway can process both voice and data calls received at its ingress ports. For a data call, the gateway establishes a network access session and allocates a modem resource to that session. The modem resource translates packets to and from the physical format (e.g., pulse-code modulation) used on the trunk for the data call. For a voice call, the gateway allocates a codec (compressor/decompressor) resource to that call. The codec resource compresses time slices of voice data into packets and buffers them for transmission out the egress port. The codec resource decompresses similar packets received from the other end of the call and buffers them for playout onto the appropriate channel of a PSTN trunk.
In FIG. 1, gateways 50 and 52 reside at the edge of packet-based network 20. For instance, a long-distance carrier who wishes to transport calls between two local exchanges may own gateways 50 and 52. Gateway 50 connects to central office 24 via trunk 54. Likewise, gateway 52 connects to a switching point (not shown) in PSTN section 22b via trunk 56.
Within packet-based network 20, a call agent 60 performs the call processing functions of a circuit switch, but in a different way. Call agent 60 exchanges circuit-switched signaling with the switching points controlling trunks 54, 56, using signal paths 62, 64. Call agent 60 thus performs call processing for calls on trunks 54, 56, although it does not usually physically terminate those trunks. Call agent 60 also controls gateways 50, 52, using a gateway control protocol, such as Media Gateway Control Protocol (MGCP), as described in Network Working Group RFC 2705.
Call agents can perform many functions, including call authorization and billing, terminating gateway location, communication with circuit switches or other call agents, traffic management, etc. Generally, the call agent manages the trunks of each gateway, instructing the gateway when and how to allocate a channel, and instructing the gateway as to the destination gateway for the voice data. After receiving permission from the call agent, the originating and terminating gateways generally negotiate the format in which voice (or bearer) data will pass between them, i.e., data rate, codec, whether the call will be encrypted, etc. The gateways then pass bearer data between themselves for the duration of the call, without the intervention of the call agent. Finally, when one endpoint terminates the call, the call agent is notified; the call agent signals the PSTN switches to take down the call, and instructs the gateways to perform clean up on the resources used for the call.